package cn.handong.tool.task;


import cn.handong.tool.utils.HttpUtils;
//import cn.handong.tool.pojo.Item;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.util.Date;
import java.util.List;

/**
 * @Date 2020/12/22 17:05
 * @Version 10.21
 * @Author DuanChaojie
 */
@Component
public class ItemTask {

    public static void main(String[] args) {
        System.out.println("上海加油");
    }

    @Test
    public void test(){
        String html = httpUtils.doGetHtml("http://quote.eastmoney.com/center/gridlist.html#hs_a_board");
        // 解析html获取Document对象
        Document doc = Jsoup.parse(html);
        System.out.println(21212);
    }

    @Autowired
    private HttpUtils httpUtils;

    @Autowired
//    private ItemService itemService;

    private static final ObjectMapper MAPPER = new ObjectMapper();

    /**
     * 当下载任务完成后，间隔多长时间进行下一次的任务
     * @throws Exception
     */
    @Scheduled(fixedDelay = 10*1000)
    public void itemTask() throws Exception{
        // 生明需要解析的初始地址
        String utl = "https://search.jd.com/Search?keyword=%E7%9B%B8%E6%9C%BA&wq=%E7%9B%B8%E6%9C%BA&pvid=5600c49783fb407e96e5faaf89bb637a&s=56&click=0&page=";

        // String utl = "http://www.iwencai.com/stockpick/search?tid=stockpick&qs=stockpick_diag&ts=1&w=600519";

        String utl1 = "https://zhuanlan.zhihu.com/p/51780281?ivk_sa=1024320u";

        // String utl1 = "https://search.51job.com/list/020000,000000,0000,00,9,99,java,2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=";

        String html1 = httpUtils.doGetHtml(utl1);

        System.out.println(html1);

        // 按照页面对相机的搜索结果进行遍历解析
        for (int i = 1; i < 10; i = i + 2) {
            String html = httpUtils.doGetHtml(utl + i);

            System.out.println(html);

//            this.parse(html);
        }

        System.out.println("手机数据抓取完成...");
    }
//
//    /**
//     * 解析html页面,获取商品数据并存储，核心逻辑
//     * @param html
//     */
//    private void parse(String html) throws IOException {
//        // 解析html获取Document对象
//        Document doc = Jsoup.parse(html);
//
//        // 获取spuEles信息
//        Elements spuEles = doc.select("div#J_goodsList>ul>li");
//
//        // 遍历spuEles
//        for (Element spuEle : spuEles) {
//            // 排除没有data-spu的值的内容
//            if (StringUtils.isNotEmpty(spuEle.attr("data-spu"))) {
//                // 获取spu
//                long spu = Long.parseLong(spuEle.attr("data-spu"));
//
//                // 获取sku信息
//                Elements skuEles = spuEle.select("ul.ps-main>li.ps-item");
//                // 根据sku过去商品数据
//                for (Element skuEle : skuEles) {
//                    // 获取sku
//                    long sku = Long.parseLong(skuEle.select("[data-sku]").first().attr("data-sku"));
//
//                    Item item = new Item();
//
//                    item.setSku(sku);
//                    List<Item> list = this.itemService.findAll(item);
//                    if (list.size() > 0) {
//                        // 如果商品存在，就进行下一个循环
//                        continue;
//                    }
//                    // 设置商品的spu
//                    item.setSpu(spu);
//                    // 获取商品的详情的url
//                    String itemUrl = "https://item.jd.com/"+sku+".html";
//                    item.setUrl(itemUrl);
//
//                    // 获取商品的图片
//                    String picUrl = "https:" + skuEle.select("img[data-sku]").first().attr("data-lazy-img");
//                    picUrl = picUrl.replace("/n7/","/n1/");
//                    String picName = this.httpUtils.doGetImage(picUrl);
//                    item.setPic(picName);
//
//                    //获取商品的价格
//                    String priceJson = this.httpUtils.doGetHtml("https://p.3.cn/prices/mgets?skuIds=J_" + sku);
//                    double price = MAPPER.readTree(priceJson).get(0).get("p").asDouble();
//                    item.setPrice(price);
//
//                    // 获取商品的标题
//                    String itemInfo = this.httpUtils.doGetHtml(item.getUrl());
//
//                    String title = Jsoup.parse(itemInfo).select("div.sku-name").text();
//                    item.setTitle(title);
//
//                    item.setCreated(new Date());
//                    item.setUpdated(item.getCreated());
//
//                    // 保存商品数据到数据库中
//                    this.itemService.save(item);
//                }
//            }
//        }

//    }
}
